Mechanically Verified Calculational Abstract Interpretation
نویسندگان
چکیده
Calculational abstract interpretation, long advocated by Cousot, is a technique for deriving correct-by-construction abstract interpreters from the formal semantics of programming languages. This paper addresses the problem of deriving correct-by-verifiedconstruction abstract interpreters with the use of a proof assistant. We identify several technical challenges to overcome with the aim of supporting verified calculational abstract interpretation that is faithful to existing pencil-and-paper proofs, supports calculation with Galois connections generally, and enables the extraction of verified static analyzers from these proofs. Tomeet these challenges, we develop a theory of Galois connections in monadic style that include a specification effect. Effectful calculations may reason classically, while pure calculations have extractable computational content. Moving between the worlds of specification and implementation is enabled by our metatheory. To validate our approach, we give the first mechanically verified proof of correctness for Cousot’s “Calculational design of a generic abstract interpreter.” Our proof “by calculus” closely follows the original paper-and-pencil proof and supports the extraction of a verified static analyzer.
منابع مشابه
Abstract interpretation as anti-refinement
This article shows a correspondence between abstract interpretation of imperative programs and the refinement calculus: in the refinement calculus, an abstract interpretation of a program is a specification which is a function. This correspondence can be used to guide the design of mechanically verified static analyses, keeping the correctness proof well separated from the heuristic parts of th...
متن کاملA Calculational Approach to Control-Flow Analysis by Abstract Interpretation
We present a derivation of a control-flow analysis by abstract interpretation. Our starting point is a transition system semantics defined as an abstract machine for a small functional language in continuation-passing style. We obtain a Galois connection for abstracting the machine states by composing Galois connections, most notable an independent-attribute Galois connection on machine states ...
متن کاملMechanically Verifying Correctness of CPS Compilation
In this paper, we study the formalization of one-pass call-by-value CPS compilation using higher-order abstract syntax. In particular, we verify mechanically that the source program and the CPS-transformed program have the same observable behavior. A key advantage of this approach is that it avoids any administrative redexes thereby simplifying the proofs about CPS-translations. The CPS transla...
متن کاملA Declarative Compositional Timing Analysis for Multicores Using the Latency-Rate Abstraction
ion Vı́tor Rodrigues, Benny Akesson, Simão Melo de Sousa, Mário Florido 1 RELiablE And SEcure Computation Group Universidade da Beira Interior, Covilhã, Portugal 2 DCC-Faculty of Science, Universidade do Porto, Portugal 3 LIACC, Universidade do Porto, Portugal 4 CISTER-ISEP Research Centre, Polytechnic Institute of Porto, Portugal Abstract. This paper presents a functional model for timing analy...
متن کاملFormal Verification of a C Value Analysis Based on Abstract Interpretation
Static analyzers based on abstract interpretation are complex pieces of software implementing delicate algorithms. Even if static analysis techniques are well understood, their implementation on real languages is still error-prone. This paper presents a formal verification using the Coq proof assistant: a formalization of a value analysis (based on abstract interpretation), and a soundness proo...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- CoRR
دوره abs/1507.03559 شماره
صفحات -
تاریخ انتشار 2015